import axios from 'axios' //引入axios
import qs from 'qs'
// import {ElMessage} from "element-plus/lib/components"; //引入qs，用来序列化post类型的数据，否则后端无法接收到数据
// 设置post请求头
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
axios.defaults.withCredentials = false;//在跨域请求时，不会携带用户凭证；返回的 response 里也会忽略 cookie
// const baseUrl =  process.env.VUE_APP_BASE_API
// const baseUrl =  `http://localhost:8888/asm`
// const baseUrl =  `http://175.27.142.213:8888/asm`
const baseUrl =  `https://bioinfor.nefu.edu.cn/asm`
//创建axios实例，请求超时时间为300秒
const instance = axios.create({
  timeout: 3000000,
});
// let loadingObj = null
// 请求拦截，增加loading，对请求统一处理
instance.interceptors.request.use((config) => {
  console.log("config",config)
  const url = config.url;
  // 某个特定接口不需要拦截
  const lastSlashIndex = url.lastIndexOf('/');
  let api_ = null
  if (lastSlashIndex !== -1 && lastSlashIndex < url.length - 1) {
    api_ = url.substring(lastSlashIndex + 1);
    console.log(api_); // 输出：mscAnalysis
  }
  if (api_ == "getTaskStat"){
    // loadingObj = ElLoading.service({lock:false})
    return config
  }else {
    // loadingObj = ElLoading.service({
    //   lock: false,
    //   text: 'Loading',
    //   background: 'rgba(0, 0, 0, 0.7)',
    // })
  }
  return config;
})

// // 响应拦截（请求返回后拦截）
// instance.interceptors.response.use(response => {
//   // loadingObj.close()
//   if (!response.data){
//     ElMessage({
//       message:"Return data is empty@",
//       type:"warning"
//     })
//   // }else {
//   //   return response
//     // ElMessage({
//     //   message:"Request Successful!",
//     //   type:"success"
//     // })
//   }
//   return response;
// }, error => {
//   console.log("error",error)
//   const url = error.config.url;
//   // 某个特定接口不需要拦截
//   let api_ = url.split("/")[5]
//   console.log("api",api_)
//
//   if (api_ == "svg_png"){
//     console.log("没有搜索到图片")
//   }else {
//     ElMessage({
//       message: 'No data!',
//       type: 'error',
//       duration: 2000
//     })
//   }
//   // loadingObj.close();
//
//   return Promise.reject(error)
// })

//按照请求类型对axios进行封装
const request={
  get(url,data){
    return instance.get(baseUrl+url,{params:data})
  },
  post(url,data){
    return instance.post(baseUrl+url,qs.stringify(data))
  },
  // postfile(url,data){
  //   return instance.post(baseUrl+url,data)
  // }
}
export {request}
